#include <stdio.h>
#include <math.h>

#define D 0.00001
#define A 0.5

float a, b, c, d;

float fx(float x)
{
    return a * x * x * x + b * x * x + c * x + d;
}

float dfx(float x)
{
    return 3 * a * x * x + 2 * b * x + c;
}

float get_root(float init)
{
    float x = init;
    while (1)
    {
        float step = -fx(x) / dfx(x);
        x += step;
        if (fabsf(fx(x)) < D)
        {
            break;
        }
    }
    return x;
}

int main()
{
    scanf("%f%f%f%f", &a, &b, &c, &d);
    float root[3];
    root[0] = get_root(-100.0f);
    root[1] = get_root(100.0f);
    root[2] = get_root((root[0] + root[1]) / 2.0f);
    float t;
    if (root[0] > root[1])
    {
        t = root[0];
        root[0] = root[1];
        root[1] = t;
    }
    if (root[0] > root[2])
    {
        t = root[0];
        root[0] = root[2];
        root[2] = t;
    }if (root[1] > root[2])
    {
        t = root[1];
        root[1] = root[2];
        root[2] = t;
    }
    printf("%.2f %.2f %.2f", root[0], root[1], root[2]);
    return 0;
}